package com.eqxiu.ieditor.dto;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.codehaus.jackson.annotate.JsonIgnore;

//import com.fasterxml.jackson.annotation.JsonIgnore;


/**
* @description 订单对外开放类
* @author DuYoulong 
* @creatTime 2019年4月2日  
* @since 1.0.0
*/
public class OrderDTO implements Serializable {
	
	private static final long serialVersionUID = -148037191547147491L;

	/**
	 * 订单id
	 */
	private Long id;

	/**
	 * 订单名称
	 */
	private String name;
	
	/**
	 * 商品code
	 */
	private String productCode;
	
	/**
	 * 商品id
	 */
	private Integer productId;
	
	/**
	 * 价钱
	 */
	private Integer totalFee;

	private String channel;
	
	/**
	 * 备注
	 */
	private String remark;
	
	/**
	 * 创建用户
	 */
	@JsonIgnore
	private String createUser;
	
	/**
	 * 订单状态
	 */
	private Byte status;
	/**
	 * 订单时间
	 */
	@JsonIgnore
	private Date createTime = new Date();

	/**
	 * 第三方的订单号
	 */
	@JsonIgnore
	private String transactionId;
	
	/**
	 * 支付订单id
	 */
	@JsonIgnore
	private String outOrderId;
	
	/**
	 * 支付类型,1 代表充值订单,2 代表消耗订单
	 */
	// 1 代表充值订单,2 代表消耗订单
	private Integer payType;

	private Integer asyncId;
	
	@JsonIgnore
	private Integer mallOrderId;
	
	private Long couponId;
	@JsonIgnore
	private String couponIds;
	
	private List<ItemDTO> items;
	
	
	/*
	 *  以下为扩展字段
	 */
	/**
	 * 当前登录用户id
	 */
	private String userId;
	
	/**
	 * controller传递的paymentAppId，来源于配置文件@Value("${payment.appid}")
	 */
	private String paymentAppId;
	
	/**
	 * controller传递的paymentNotifyCharge，@Value("${payment.notifyCharge}")
	 */
	private String paymentNotifyCharge;
	
	
	/**
	 * payment.appkey<br/>
	 * controller传递的appKey，@Value("${payment.appkey}")
	 */
	private String appKey;


	/**
	 * 查询条件中有code,应该为product_code
	 */
	private String code;


	/**
	 * 后台管理项目用该字段
	 */
	private String loginName;
	/**
	 * 绑定支付系统的商品id
	 */
	private Integer goodsId = 25;
	
	private String notifyUrl;
	
	private String paymentProductCode;
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getChannel() {
		return channel;
	}

	public void setChannel(String channel) {
		this.channel = channel;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getProductCode() {
		return productCode;
	}

	public void setProductCode(String productCode) {
		this.productCode = productCode;
	}

	public Integer getProductId() {
		return productId;
	}

	public void setProductId(Integer productId) {
		this.productId = productId;
	}

	public Integer getTotalFee() {
		return totalFee;
	}

	public void setTotalFee(Integer totalFee) {
		this.totalFee = totalFee;
	}

	public String getCreateUser() {
		return createUser;
	}

	public void setCreateUser(String createUser) {
		this.createUser = createUser;
	}

	public Byte getStatus() {
		return status;
	}

	public void setStatus(Byte status) {
		this.status = status;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public String getTransactionId() {
		return transactionId;
	}

	public void setTransactionId(String transactionId) {
		this.transactionId = transactionId;
	}

	public String getOutOrderId() {
		return outOrderId;
	}

	public void setOutOrderId(String outOrderId) {
		this.outOrderId = outOrderId;
	}

	public Integer getPayType() {
		return payType;
	}

	public void setPayType(Integer payType) {
		this.payType = payType;
	}

	/**
	 * @return the asyncId
	 */
	public Integer getAsyncId() {
		return asyncId;
	}

	/**
	 * @param asyncId the asyncId to set
	 */
	public void setAsyncId(Integer asyncId) {
		this.asyncId = asyncId;
	}

	public Integer getMallOrderId() {
		return mallOrderId;
	}

	public void setMallOrderId(Integer mallOrderId) {
		this.mallOrderId = mallOrderId;
	}

	public String getCouponIds() {
		return couponIds;
	}

	public void setCouponIds(String couponIds) {
		this.couponIds = couponIds;
	}

	public Long getCouponId() {
		return couponId;
	}

	public void setCouponId(Long couponId) {
		this.couponId = couponId;
	}

	public List<ItemDTO> getItems() {
		return items;
	}

	public void setItems(List<ItemDTO> items) {
		this.items = items;
	}

	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getPaymentAppId() {
		return paymentAppId;
	}

	public void setPaymentAppId(String paymentAppId) {
		this.paymentAppId = paymentAppId;
	}

	public String getPaymentNotifyCharge() {
		return paymentNotifyCharge;
	}

	public void setPaymentNotifyCharge(String paymentNotifyCharge) {
		this.paymentNotifyCharge = paymentNotifyCharge;
	}

	
	public String getAppKey() {
		return appKey;
	}

	public void setAppKey(String appKey) {
		this.appKey = appKey;
	}

	public Integer getGoodsId() {
		return goodsId;
	}

	public void setGoodsId(Integer goodsId) {
		this.goodsId = goodsId;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public String getPaymentProductCode() {
		return paymentProductCode;
	}

	public void setPaymentProductCode(String paymentProductCode) {
		this.paymentProductCode = paymentProductCode;
	}
	
}
